#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QDebug>
#include <QPushButton>
#include <QStatusBar>
#include <QDockWidget>
#include <QLabel>
#include <QTextEdit>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{    
    //设置窗口大小
    resize(600,400);

    //创建菜单栏 这里nenuBar是系统定义的函数，不需要new了
    QMenuBar * bar = menuBar();

    //将菜单栏放入到窗口中，菜单栏只能有一个
    setMenuBar(bar);

    //创建菜单,空的菜单栏不会显示
    QMenu * fileMenu = bar->addMenu("文件");
    QMenu * editMenu = bar->addMenu("编辑");

//    //创建菜单项
//    fileMenu->addAction("新建");
//    //添加分割线
//    fileMenu->addSeparator();
//    fileMenu->addAction("打开");
    //为了和工具栏共用，分别定义一个指针
    QAction * newfile = fileMenu->addAction("新建");
    fileMenu->addSeparator();
    QAction * openfile = fileMenu->addAction("打开");


    //工具栏 工具栏可以有一个或者多个
    QToolBar * toolbar = new QToolBar(this);

    //添加工具栏并 设置默认停靠范围（靠左），上下左右枚举值可以在帮助文档查看。
    addToolBar(Qt::LeftToolBarArea,toolbar);

    //只允许 左右停靠（左右拉拽）
    toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);

    //设置浮动,能不能在中间停住
    toolbar->setFloatable(false);

    //设置移动（总开关），关闭后不能进行任何移动
    toolbar->setMovable(false);

    //工具栏中设置内容
    //把菜单中的新建 打开 加入工具栏
    toolbar->addAction(newfile);
    //添加分割线
    toolbar->addSeparator();
    toolbar->addAction(openfile);

    //添加控件 添加一个按钮
    QPushButton * btn = new QPushButton("aaa");
    toolbar->addWidget(btn);



    //添加状态栏 只能有一个
    QStatusBar * stBar = statusBar();
    //设置到窗口中
    setStatusBar(stBar);
    //放标签控件
    //定义标签控件
    QLabel * label1 = new QLabel("提示信息",this);
    //将控件加到状态栏
    stBar->addWidget(label1);

    QLabel * label2 = new QLabel("右侧提示信息",this);
    //将控件加到状态栏右侧
    stBar->addPermanentWidget(label2);


    //添加 铆接部件(浮动窗口) 可以有多个
    QDockWidget * dockWidget = new QDockWidget("浮动",this);
    //设置为在中心部件下边出现
    addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
    //设置停靠区域 只允许上下停靠
    dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);


    //设置 中心部件 只能有一个
    QTextEdit * edit = new QTextEdit(this);
    //设置到窗口中
    setCentralWidget(edit);

}

MainWindow::~MainWindow()
{

}
